package cn.fl.risknew.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.cmm.base.framework.utils.StringUtils;
import cn.fl.risknew.dto.RskCommRecDTO;
import cn.fl.risknew.vo.RskCommRecVO;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 沟通记录表 转换器
 * VO是客户端传递数据到服务端进行转换的数据
 * VO转换数据变成DTO传递到服务端
 * VO不能在服务端出现
 */
public class RskCommRecVOTransform {


    /**
     * DTO 转  VO
     *
     * @param dto RskCommRecDTO
     * @return RskCommRecVO
     */
    public static RskCommRecVO toVO(RskCommRecDTO dto) {
        RskCommRecVO vo = null;
        if (dto != null) {
            vo = new RskCommRecVO();
            vo.setId(dto.getId());
            vo.setCstId(dto.getCstId());//客户ID
            vo.setCollectTm(dto.getCollectTm());//催收时间
            vo.setCollectWayCd(dto.getCollectWayCd());//催收方式RSK0001
            vo.setCollectUsrId(dto.getCollectUsrId());//催收员ID
            vo.setOvdReasonCd(dto.getOvdReasonCd());//欠款原因RSK0002
            vo.setLkMan(dto.getLkMan());//联系人
            vo.setLkPhone(dto.getLkPhone());//联系电话
            vo.setCollectRem(dto.getCollectRem());//催收记录
            vo.setCollectRstCd(dto.getCollectRstCd());//催收结果RSK0003
            vo.setCollectCost(dto.getCollectCost());//催收成本
            vo.setCreateTime(dto.getCreateTime());//创建时间
            vo.setCstNm(dto.getCstNm());//客户名称
            vo.setCollectUsrNm(dto.getCollectUsrNm());//催收员名称
            vo.setAppoDt(dto.getAppoDt());
            vo.setBuTypCd(dto.getBuTypCd());//业务类型
            vo.setBuOrgCd(dto.getBuOrgCd());
            vo.setBizNo(dto.getBizNo());//业务编号

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人
            
            vo.setSerialNum(dto.getSerialNum());//三方流水
            vo.setCommSec(dto.getCommSec());//沟通时长
            vo.setCommStsCd(dto.getCommStsCd());//沟通状态
            vo.setRecFileUrl(dto.getRecFileUrl());//文件地址
            vo.setGeoPost(dto.getGeoPost());//地理位置
            vo.setPreLoanRskInfo(dto.getPreLoanRskInfo());//地理位置

            if(StringUtils.isNotEmpty(dto.getLkAddr()))
                vo.setLkAddr(dto.getLkAddr());

            if(StringUtils.isNotEmpty(dto.getPayWnCd()))
                vo.setPayWnCd(dto.getPayWnCd());

            if(StringUtils.isNotEmpty(dto.getInvTypCd()))
                vo.setInvTypCd(dto.getInvTypCd());

            if(StringUtils.isNotEmpty(dto.getRlNm()))
                vo.setRlNm(dto.getRlNm());

            if(StringUtils.isNotEmpty(dto.getRlMp()))
                vo.setRlMp(dto.getRlMp());

            if(StringUtils.isNotEmpty(dto.getRlTypCd()))
                vo.setRlTypCd(dto.getRlTypCd());

            if(StringUtils.isNotEmpty(dto.getLetterTypCd()))
                vo.setLetterTypCd(dto.getLetterTypCd());

            if(StringUtils.isNotEmpty(dto.getVisitRstCd()))
                vo.setVisitRstCd(dto.getVisitRstCd());

            if(StringUtils.isNotEmpty(dto.getIsConnect()))
                vo.setIsConnect(dto.getIsConnect());

            if(StringUtils.isNotEmpty(dto.getCntStsCd()))
                vo.setCntStsCd(dto.getCntStsCd());

            if(StringUtils.isNotEmpty(dto.getlKTypCd()))
                vo.setlKTypCd(dto.getlKTypCd());

            // 客户反馈受新型肺炎影响
            if(StringUtils.isNotEmpty(dto.getCstFeedbackCd())) {
                vo.setCstFeedbackCd(dto.getCstFeedbackCd());
            }
            // 公司审批受新型肺炎影响
            if(StringUtils.isNotEmpty(dto.getCompFeedbackCd())) {
                vo.setCompFeedbackCd(dto.getCompFeedbackCd());
            }
            vo.setLetterSendWay(dto.getLetterSendWay());
            vo.setLetterSendRes(dto.getLetterSendRes());
            vo.setExpressNo(dto.getExpressNo());
            vo.setRealAdress(dto.getRealAdress());
            vo.setIsRealAdress(dto.getIsRealAdress());
            vo.setParticipant(dto.getParticipant());

            //C卡结果
            vo.setCCardRiskLevel(dto.getCCardRiskLevel());
            vo.setCollectRiskLevel(dto.getCollectRiskLevel());
            vo.setLevelDifRsn(dto.getLevelDifRsn());
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param vo RskCommRecVO
     * @return RskCommRecDTO
     */
    public static RskCommRecDTO toDTO(RskCommRecVO vo) {
        RskCommRecDTO dto = null;
        if (vo != null) {
            dto = new RskCommRecDTO();
            dto.setId(vo.getId());
            dto.setCstId(vo.getCstId());//客户ID
            dto.setCollectTm(vo.getCollectTm());//催收时间
            dto.setCollectWayCd(vo.getCollectWayCd());//催收方式RSK0001
            dto.setCollectUsrId(vo.getCollectUsrId());//催收员ID
            dto.setOvdReasonCd(vo.getOvdReasonCd());//欠款原因RSK0002
            dto.setLkMan(vo.getLkMan());//联系人
            dto.setLkPhone(vo.getLkPhone());//联系电话
            dto.setCollectRem(vo.getCollectRem());//催收记录
            dto.setCollectRstCd(vo.getCollectRstCd());//催收结果RSK0003
            dto.setCollectCost(vo.getCollectCost());//催收成本
            dto.setCreateTime(vo.getCreateTime());//创建时间
            dto.setCstNm(vo.getCstNm());//客户名称
            dto.setCollectUsrNm(vo.getCollectUsrNm());//催收员名称
            dto.setAppoDt(vo.getAppoDt());
            dto.setBuTypCd(vo.getBuTypCd());//业务类型
            dto.setBizNo(vo.getBizNo());//业务编号

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
            
            dto.setSerialNum(vo.getSerialNum());//三方流水
            dto.setCommSec(vo.getCommSec());//沟通时长
            dto.setCommStsCd(vo.getCommStsCd());//沟通状态
            dto.setRecFileUrl(vo.getRecFileUrl());//文件地址
            dto.setGeoPost(vo.getGeoPost());//地理位置
            dto.setPreLoanRskInfo(vo.getPreLoanRskInfo());

            if(StringUtils.isNotEmpty(vo.getLkAddr()))
                dto.setLkAddr(vo.getLkAddr());

            if(StringUtils.isNotEmpty(vo.getPayWnCd()))
                dto.setPayWnCd(vo.getPayWnCd());

            if(StringUtils.isNotEmpty(vo.getInvTypCd()))
                dto.setInvTypCd(vo.getInvTypCd());

            if(StringUtils.isNotEmpty(vo.getRlNm()))
                dto.setRlNm(vo.getRlNm());

            if(StringUtils.isNotEmpty(vo.getRlMp()))
                dto.setRlMp(vo.getRlMp());

            if(StringUtils.isNotEmpty(vo.getRlTypCd()))
                dto.setRlTypCd(vo.getRlTypCd());

            if(StringUtils.isNotEmpty(vo.getLetterTypCd()))
                dto.setLetterTypCd(vo.getLetterTypCd());

            if(StringUtils.isNotEmpty(vo.getVisitRstCd()))
                dto.setVisitRstCd(vo.getVisitRstCd());

            if(StringUtils.isNotEmpty(vo.getIsConnect()))
                dto.setIsConnect(vo.getIsConnect());

            if(StringUtils.isNotEmpty(vo.getCntStsCd()))
                dto.setCntStsCd(vo.getCntStsCd());

            if(StringUtils.isNotEmpty(vo.getlKTypCd()))
                dto.setlKTypCd(vo.getlKTypCd());

            // 客户反馈受新型肺炎影响
            if(StringUtils.isNotEmpty(vo.getCstFeedbackCd())) {
                dto.setCstFeedbackCd(vo.getCstFeedbackCd());
            }
            // 公司审批受新型肺炎影响
            if(StringUtils.isNotEmpty(vo.getCompFeedbackCd())) {
                dto.setCompFeedbackCd(vo.getCompFeedbackCd());
            }
            dto.setLetterSendRes(vo.getLetterSendRes());
            dto.setLetterSendWay(vo.getLetterSendWay());
            dto.setExpressNo(vo.getExpressNo());
            dto.setRealAdress(vo.getRealAdress());
            dto.setIsRealAdress(vo.getIsRealAdress());
            dto.setParticipant(vo.getParticipant());

            //C卡结果
            dto.setCCardRiskLevel(vo.getCCardRiskLevel());
            dto.setCollectRiskLevel(vo.getCollectRiskLevel());
            dto.setLevelDifRsn(vo.getLevelDifRsn());
        }
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list List<RskCommRec>
     * @return List<RskCommRecDTO>
     */
    public static List<RskCommRecVO> toVOList(List<RskCommRecDTO> list) {
        List<RskCommRecVO> voList = new ArrayList<RskCommRecVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (RskCommRecDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }
}
